/*
package 富婆梦.第一阶段.第二周.作业;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

*/
/**
 * 困难题的测试类
 * 题目设置：一把手枪，12个弹膛。可以多人参与游戏。子弹数量为玩家数量-1。剩下一人存活游戏结束。输出每次开枪的信息
 * 测试条件：
 * 1、子弹数量测试->bulletTest():子弹是必须是小于弹膛数量，必须为玩家人数-1.否则游戏不能开始
 * 2、转动转轮测试：每轮游戏只能在游戏开始前转动转轮。如果游戏进行当中有人转动转轮，则认为是有人作弊，游戏中止
 *//*

public class HardTest {
    public static void main(String[] args) {
        //一把手枪，4个玩家
        Gun gun = new Gun();
        gun.setBullet(3);

        List<Player> list = new ArrayList<Player>();
        Player p1 = new Player("小A");
        Player p2 = new Player("小B");
        Player p3 = new Player("小C");
        Player p4 = new Player("小D");
        list.add(p1);
        list.add(p2);
        list.add(p3);
        list.add(p4);

        HardTest test = new HardTest();
        if (test.bulletTest(gun,list)){//游戏开始前先测试，枪里面子的弹数量是符合游戏规则，只有符合规则才能开始
            //子弹上膛
            gun.putBullet();
            gun.turn();//游戏开始前第一次转动转轮
            int nd = gun.getNeedlel();//记录初始撞针的位置,用于校验是否有人违规操作转轮

            int count = 0;//开枪次数统计
            System.out.println("游戏开始前每个玩家的生死状况：");
            for (Player p:list){
                System.out.println("玩家" + p.getName() + "是否活着"+p.isLife());
            }

            System.out.println("--------游戏正式开始--------");
            outer:
            while (true){

                for (int i=0;i<list.size();i++){

                    if (nd != gun.getNeedlel()){//如果游戏过程中有人偷偷转动转轮，属于违规。要停止游戏
                        System.out.println("有人偷偷的转动了转轮，游戏暂停，抓住那个作弊的人");
                        break outer;
                    }else {
                        if (list.get(i).isLife() == true){//活着的玩家才可以开枪
                            count = count+1;
                            if (list.get(i).fire(gun) == true){//这一枪有子弹
                                if (i ==list.size()-1){//开枪者为数组里的最后一个
                                    list.get(0).gotShoot();//数组第一个人死了
                                    System.out.print("这是第"+count+"枪,成功击中"+list.get(0).getName());
                                    System.out.println("。还剩下"+gun.getBullet()+"发子弹，开枪者为"+list.get(i).getName());
                                    list.remove(0);
                                }else {
                                    list.get(i+1).gotShoot();//后面一个人死掉
                                    System.out.print("这是第"+count+"枪,成功击中"+list.get(i+1).getName());
                                    System.out.println("。还剩下"+gun.getBullet()+"发子弹，开枪者为"+list.get(i).getName());
                                    list.remove(i+1);
                                }
                            }else {//枪里没有子弹
                                System.out.print("这是第"+count+"枪,没有击中对方。还剩下");
                                System.out.println(gun.getBullet()+"发子弹，开枪者为"+list.get(i).getName());
                            }
                            nd = nd+1;
                            if (nd == gun.getDantang()){
                                nd = 0;
                            }
                        }
                        if (gun.getBullet()==0){
                            System.out.println("子弹已经用光了！");
                            System.out.println("--------游戏结束--------");
                            break outer;
                        }
                    }
                }
            }
            System.out.println("游戏结束后每个玩家的生死状况：");
            System.out.println("玩家" + p1.getName() + "是否活着"+p1.isLife());
            System.out.println("玩家" + p2.getName() + "是否活着"+p2.isLife());
            System.out.println("玩家" + p3.getName() + "是否活着"+p3.isLife());
            System.out.println("玩家" + p4.getName() + "是否活着"+p4.isLife());
        }

    }

    //测试子弹数量的方法
    public boolean bulletTest(Gun gun,List<Player> list){
        boolean ts = true;
        if (gun.getBullet() > gun.getDantang()){
            System.out.println("你的子弹那么多，枪都装不下了，最多只能装"+gun.getDantang()+"颗子弹");
            System.out.println("调整一下子弹数量再来玩游戏吧！");
            assert gun.getBullet() > gun.getDantang();
            ts = false;
        }else if (gun.getBullet() >= list.size()){
            System.out.println("参加游戏的人数有:"+list.size()+"个，你放的子弹太多了，放入比玩家数量少1的子弹，游戏才能愉快地玩耍哦！");
            System.out.println("调整一下子弹数量再来玩游戏吧！");
            ts = false;
        }else if (gun.getBullet() == 0){
            System.out.println("你子弹都不放，游戏没法玩下去了！");
            System.out.println("调整一下子弹数量再来玩游戏吧！");
            ts = false;
        }else {
            ts = true;
        }
        return ts;
    }


}
*/
